//
//  YKBusinessFramework.h
//  EquesBusiness
//
//  Created by eques on 15/7/9.
//  Copyright (c) 2015年 eques. All rights reserved.
//  Version: 1.0.16

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
/*获取模型*/
#import "YKIPinfo.h"
/**
 注册这个通知，用于接收 登录服务器后 服务器返回的 webocket 数据 必须注册 
 **/

#ifndef equesOnMessageResultNotification
   #define equesOnMessageResultNotification @"EQUESONMESSAGERESULT"
#endif


#ifndef equesOnMessageVideoplayingNotification
   /**
   注册此消息通知：代表视频呼叫成功 视频拨打成功，视频帧数据就位
   作用：调用者在UI层监听此消息，以便处理：视频显示之前的逻辑、视频显示之后的逻辑
    **/
   #define equesOnMessageVideoplayingNotification @"EQUESVIDEOPLAYINGNOTIFICATION"

   /*
    VL/VM系列智能锁项目使用 音视频连接设备失败通知
    */
   #define equesOnMessageVideocConnectPeerFail @"EQUESVIDEOCONNECTPEERFAIL"

   /*
    VL/VM系列智能锁使用 音视频创建通道失败
    */
   #define equesOnMessageVideocCreateChannelFail @"EQUESVIDEOCREATECHANNELFAIL"

   /*VL/VM系列智能锁使用 音视频断开*/
   #define equesOnMessageVideocCallClose @"Call_Close"

   /*VL/VM系列智能锁使用 音视频数据超时或呼叫指令发出设备无响应超时*/
   #define equesOnMessageVideocTimeOut @"timeout"
#endif

typedef NS_ENUM(NSInteger,DeviceType) {
    EquesC01 = 0,//远见
    EquesElse,//其它移康产品
    EquesE6,//e6第三方版本 时区；用户名；网络名称；密码；keyid
};

typedef NS_ENUM(int,AllowResponce) {
    allowAdd = 1,//允许添加
    refuseAdd = 0,//拒绝添加
};

typedef NS_ENUM(int,deleteOption) {
    deleteSome = 0,//更具设备的bid和记录的唯一标识删除
    deleteAll = 2,//根据设备bid删除，可以用来一键删除该设备的全部消息
};

typedef NS_ENUM(int,deleteLockOption) {
    deleteLockSome = 0,//服务器将根据bid,lid和oid（或者aid）来删除
    deleteLockAll = 1,//为1时, 服务器将根据bid,lid来删除, 此时将忽略oid或者aid参数
};

typedef NS_ENUM(int,PirBell) {
    whoAreYou = 1,//你是谁呀
    beepBell = 2,//嘟嘟声
    alarmBell = 3,//报警声
    zingBell = 4,//尖啸声
    muteBell = 5,//静音
    customBellP = 6,//自定义
};


typedef void(^getData)(char *picdata,int data_size,int yuv_wdith,int yuv_height,const uint8_t* src_y, int src_stride_y,
                         const uint8_t* src_u,int src_stride_u,
                       const uint8_t* src_v,int src_stride_v);

@interface YKBusinessFramework : NSObject


/* ----------------------------------------------------新的第三方服务器 用户注册 ----------------------------------------------------*/


#pragma mark 获取服务器IP信息
/*
  APP注册登录服务器之前必须调用此接口，用户获取相关的IP信息
 
  获取服务器IP信息 用来后面的注册和登录
 
  server_adds 地址不同服务器不同地址
 
 "distribute.ecamzone.cc"        服务器通过DNS自动获取
 "distribute-cn.ecamzone.cc"     中国大陆
 "distribute-us.ecamzone.cc"     美洲
 "distribute-eu.ecamzone.cc"     欧洲
 "distribute-sg.ecamzone.cc"     亚太非中国大陆
 "testdistribute.ecamzone.cc"    测试
 
 username 首次启动时 没有用户名可不传
 */
+ (void)get_server_ip:(NSString*)server_adds username:(NSString*)username;


#pragma mark 注册用户时 发送的注册信息
/*
  注册用户    获取注册发送的注册信息
  brand_id  给厂商分配品牌id
  user_name 注册的用户名
  appkey    给厂商分配appkey
 */
+ (NSDictionary*)register_user_info:(int)brand_id appkey:(NSString*)appkey user_name:(NSString*)name;


#pragma mark 注册用户
/*
  注册用户 post 请求
  调用
  + (NSDictionary*)register_user_info:(int)brand_id appkey:(NSString*)appkey user_name:(NSString*)name
  接口 获取注册信息
  返回的数据传输给服务器 服务器校验 返回注册成功结果 并返回token
 */
+ (NSURL*)register_user;



#pragma mark 获取用户的token时 发送的细腻
/*
  获取用户token 获取用户token信息
  brand_id    给厂商分配品牌id
  user_name   注册的用户名
  appkey      给厂商分配appkey
 */
+ (NSDictionary*)get_token_user_info:(int)brand_id appkey:(NSString*)appkey user_name:(NSString*)name;


#pragma mark 获取用户的token
/*
 获取用户的token post 请求
  调用
  + (NSDictionary*)get_token_user_info:(int)brand_id appkey:(NSString*)appkey user_name:(NSString*)name
  接口 获取用户获取token信息
  返回的数据传输给服务器 服务器校验 返回注册成功结果 并返回token
 */
+ (NSURL*)get_user_token;


#pragma mark 用户登录
/*
 username 用户名
 token    注册返回的token
 appKey   厂商分配的appkey
 server_adds 获取分发的域名地址 传的话更新分发地址后，再登录；不传或者未空字符串 直接用保存到本地的地址去登录
 */

+ (void)loginWithUserName:(NSString *)username token:(NSString *)token appKey:(NSString *)appKey server_adds:(NSString*)server_adds;

/* ----------------------------------------------------新的第三方服务器 用户注册结束 ----------------------------------------------------*/



#pragma mark 判断用户是否在线
+ (BOOL)equesIsLogin;

#pragma mark 用户退出登录
+ (void)equesLogout;

#pragma mark 获取当前SDK版本号
+ (NSString *)getEquesSdkVersion;


#pragma mark 登录成功后获取设备列表
+ (void)equesGetDeviceList;

#pragma mark 删除设备
/**
 *  删除设备
 *
 *  @param bid 设备的唯一标识
 */
+ (void)equesDelDeviceWithBid:(NSString *)bid;


#pragma mark 修改设备昵称
/**

 *  @param bid 设备的唯一标识
 *  @param nick 设备昵称
 */
+ (void)equesSetDeviceNickWithBid:(NSString *)bid Nick:(NSString *)nick;

#pragma mark 软件远程升级
/**
 *  远程升级设备端的固件。
 *
 *  @param uid 设备端的通信id
 */
+ (void)equesUpgradeDeviceWithUid:(NSString *)uid;


#pragma mark /* ------------------------------------------------------------  智能锁模块（VM/VL系列接口） 系列 接口开始 --------------------------------------------------------------- */

#pragma mark  获取锁消息天数
/**
 *  返回有锁消息的天数 GET
 *  @param lockID 设备的唯一标识 bdylist中的设备 bid
 */
+ (NSURL*)getLockRecordCountWithLockid:(NSString*)lockID;


#pragma mark  获取锁消息 start_time end_time 传0 返回1970 到目前最新的消息  GET
/**
 *  @param  lockID 设备的唯一标识
 *  @param  startTime 开始时间
 *  @param  end_time 结束时间
 *  @param  offset 偏移量从某个位置获取
 *  @param  limit 限制个数
 */
+ (NSURL*)getLockRecordWithLockid:(NSString*)lockID startTime:(long long)startTime end_time:(long long)end_time offset:(int)offset limit:(int)limit;


#pragma mark  获取锁告警天数
/**
 *  获取门锁告警天数 GET
 *  @param lockID 设备的唯一标识
 */
+ (NSURL*)getSmartLockAlarmCountWithLockid:(NSString*)lockID;

#pragma mark  获取锁告警消息 start_time end_time 传0 返回1970 到目前最新的消息 GET
/**
 *  @param lockID 设备的唯一标识
 *  @param  startTime 开始时间
 *  @param  end_time 结束时间
 *  @param  offset 偏移量从某个位置获取
 *  @param  limit 限制个数
 */
+ (NSURL*)getLockAlarmdWithLockid:(NSString*)lockID startTime:(long long)startTime end_time:(long long)end_time offset:(int)offset limit:(int)limit;


#pragma mark 锁告警报警文件下接口
+ (NSURL *)equesGetAlarmfileUrl:(NSString *)bid fid:(NSString *)fid context:(NSString *)context;


#pragma mark 删除门锁消息  删除数据采用 POST发出
+ (NSURL*)del_smart_lock_message;

#pragma mark 删除门锁告警  删除数据采用 POST发出
+ (NSURL*)del_smart_lock_alarm;


#pragma mark 新的门铃列表获取接口 整机猫眼和锁模块通用

/**
*  获取某个设备门铃消息天数数据
*   bid 设备ID
*/
+ (NSURL *)equesGetRingCountUrlWithBid:(NSString *)bid;


#pragma mark 新的门铃记录接口 获取某一时间段内的消息天数 整机猫眼和锁模块通用
/**
*  获取某一时间段内的消息天数
*   bid 设备ID
   startTime 开始时间
   endTime 结束时间
   op_type 门铃消息了下 室内和室外 0室外  （1室内 S1系列设备支持）
   offSet 偏移量
   limit 返回个数限制
*  @param bid 设备端的id
*/
+ (NSURL *)equesGetRingListUrlWithBid:(NSString *)bid startTime:(long long)startTime endTime:(long long)endTime offSet:(int)offset  limit:(int)limit op_type:(int)messagetype;


#pragma mark  删除门铃记录 POST请求 整机猫眼和锁模块通用
+ (NSURL *)equesDeleteRingList;



#pragma mark 门铃来电原图Url 整机猫眼和锁模块通用
/**
 *  门铃来电原图Url
 *
 *  @param bid 设备的唯一标识
 *  @param fid 门铃图片文件的唯一id
 */
+ (NSURL *)equesGetRingPictureUrl:(NSString *)bid fid:(NSString *)fid;

#pragma mark 门铃来电图片Url context 服务器存储地址 整机猫眼和锁模块通用
+ (NSURL *)equesGetRingPictureUrl:(NSString *)bid fid:(NSString *)fid context:(NSString *)context;


#pragma mark 锁门铃来电图片缩略图Url
+ (NSURL *)equesGetRingPictureThumbUrl:(NSString *)bid fid:(NSString *)fid context:(NSString *)context;

+ (NSURL *)equesGetRingPictureThumbUrl:(NSString *)bid fid:(NSString *)fid;


#pragma mark 获取门铃记录列表 整机猫眼和锁模块通用 websockket方式
/**
 *  获取门铃记录列表
 *
 *  @param bid 设备的唯一标识
 *  @param startTime  要获取门铃记录的起始时间
 *  @param endTime    要获取门铃记录的截止时间
 *  @param limit 一次最多获取的门铃记录条数(最大支持1000条)
 */
+ (void)equesGetRingRecordList:(NSString *)bid startTime:(long long)startTime endTime:(long long)endTime limitCount:(long long)limit;

#pragma mark 删除门铃记录接口 整机猫眼和锁模块通用 websockket方式
/**
 *  删除门铃记录接口
 *
 *  @param bid 设备的唯一标识
 *  @param fid 门铃记录的唯一id
 *  @param delAll 删除方式
 */
+ (void)equesDelRingRecordWithBid:(NSString *)bid fid:(NSArray *)fid delAll:(deleteOption)delAll;



/* -------------------------  智能锁/智能宠物模块 获取设备信息和更新设备设置接口开始 --------------------------- */

#pragma mark 获取设备的设置信息 lastUpdateTime 默认传 0 get请求
+(NSURL*)get_shadow_settings:(NSString*)deviceId lastUpdate:(long long)lastUpdateTime;

#pragma mark 获取设备的状态信息 get请求
+(NSURL*)get_shadow_state:(NSString*)deviceId;

#pragma mark 更新设备的设置信息 post请求
+(NSURL*)update_shadow_settings:(NSString*)deviceId;

/* -------------------------  智能锁/智能宠物模块 获取设备和更新设备设置接口结束 ----------------------------- */



/*-------------------------- 智能锁/宠物模块 客户端音视频直播查看接口 开始 --------------------------*/

#pragma mark rtc初始化函数
/**
 * rtc初始化函数
 */
+(int)rtc_initWithUserId:(NSString*)userUid andIP:(NSString*)serviceIP andPort:(int)ipport net_type:(int)net_type;


#pragma mark rtc去初始化函数
/**
 * rtc去初始化函数
 */
+(int)rtc_uninit;

#pragma mark 视频呼叫
/**
 * 视频呼叫
 *  devicesId 设备bid
 *  videowindow 视频控件
 *  peer_id 被动接听 是设备端通过websocket发过来的数据；用户主动查看是可不传
 *  camera_width  视频宽
 *  camera_height 视频高 设备信息 get_shadow_state 接口获取
 *  invite   是否是主动呼叫；主动查看是 Yes 设备按门铃弹出门铃来电是NO
 *  userID 用户登录成功后 服务器返回的uid
 *  type 设备类型 bdylist中获取的 role
 *  isH264 是否h264数据 设备信息中 video_f 是H264就传YES 没有此字段就传NO
 *  op_type denoise 传 0
 *  dataBlock 暂时不用
 *  path 传空字符传 @“”
 */
+ (int)rtc_make_Call:(NSString *)devicesId showView:(UIView *)videowindow peer_id:(NSString*)peer_id camera_width:(int)width camera_height:(int)height isInvite:(BOOL)invite userID:(NSString*)userID  type:(int)type path:(NSString*)path isH264:(BOOL)isH264 camera_id:(int)camera denoise:(int)denoise op_type:(int)op_type dataBlock:(getData)dataBlock;


#pragma mark 智能锁模块多摄像头时 切换摄像头
/*
 智能锁模块多摄像头时 切换摄像头 camera_index 摄像头下标 bid 设备bid
 */
+ (void)switch_camera:(long)camera_index bid:(NSString*)bid;

#pragma mark 多摄切换时 需要旋转界面
/*
  当上个摄像头的camera_id 与本次的切换的摄像头camera_id不一样时 需要更改 一般都是一致的
 */
+ (void)change_video_angle:(int)angle;

#pragma mark 智能锁模块一键开锁 开锁前需要验证 安全密码 也可不验证 看客户场景
/*
 智能锁模块一键开锁 开锁bid 设备bid  Userbid 登录返回的用户bid
 */
+ (void)open_lockDeviceBid:(NSString*)bid Userbid:(NSString*)userBid;


#pragma mark  开启/关闭麦克风
+ (void)rtc_AudioPlayEnable:(BOOL)enable;


#pragma mark  关闭录音
+ (void)rtc_AudioPlayRecordEnable:(BOOL)enable;


#pragma mark  变声 0 正常 1 男声
+ (void)rtc_changSound:(int)type;

#pragma mark  抓拍 capturePath图片路径 需要创建好 picWidth picheight 图片宽高 可以通过截取视频控件来截图
+ (void)rtc_capture:(NSString *)capturePath picWidth:(int)picWidth piceHeight:(int)picHeight;

#pragma mark  挂断视频
+ (void)rtc_hangup:(NSString*)devicesId;

#pragma mark 切片报警文件转mp4
/*
 inputFilePath 切片文件的部分路径 不是全路径 后面的ts文件的命名 在底层拼接 需要注意的是 ts文件的命名 必须是 id0.ts id1.ts这样 不然没法识别
 例如:/var/mobile/Containers/Data/Application/691041E7-9D94-41D5-817C-29C773B21A88/Documents/Downloads/5bd50fae69357cc4e5ecbc90158a4179/
 mp4_outputFilePath:输出mp4的路径
 ish265:视频格式是否是265
 tsNumber : 本次报警切片个数
 */
+ (int)rtc_tsTomp4:(NSString*)inputFilePath  mp4_outputFilePath:(NSString*)mp4_outputFilePath  ish265:(int)ish265 tsNumber:(int)tsNumber;

#pragma mark 画中画时 app端将前置摄像头的数据 发送 给设备端数据
+ (void)sen_app_camrera_data:(const uint8_t *)data leng:(int)length;


#pragma mark 宠物设备开始录屏
+ (void)start_record:(int)width height:(int)height path:(NSString*)path degree:(int)degree;

#pragma mark 宠物设备结束录屏
+ (void)stop_record;


#pragma mark  设备唤醒接口
/**
 *  @param   bid     设备的bid
 */
+ (void)wake_upWithbid:(NSString*)bid;

/*--------------------------  智能锁模块 客户端音视频直播查看接口 结束 --------------------------*/



/*----------------------------  设备分享接口 开始 ------------------------- */
/**
  分享分为2个方式：
 1.主用户生成share_token/分享邀请码 需要子用户主动接受分享
 2.主用户直接分享给子用户设备，不需要子用户主动接受分享
 device_id 设备id
 */

/*1.主用户生成share_token/分享邀请码 需要子用户主动接受分享*/

/**
    主用户创建share_token/分享邀请码
    device_id 设备 device_id
 */
+(NSURL *)create_share_token:(NSString*)device_id;


/**
    子用户输入邀请码接受分享
    user_id 子用户user_id
    invitation_code 邀请码
 */
+(NSURL *)user_accept_invitation_code:(NSString*)invitation_code;


/**
    子用户解析到 share_token接受分享
    user_id 子用户user_id
    share_token 分享码
 */
+(NSURL *)user_accept_share_token:(NSString*)share_token;



/*2.主用户直接分享给子用户，不需要子用户接受分享*/
/**
    主用户强制分享设备给子用户
 
    接口 get_device_shared_user   获取分享的用户列表
    接口 cancel_share_device         主用户取消分享
 
    device_id 设备ID
    name 被接受分享的用户名
 
    {
        "code": 0,
        "reason": "成功"
    }
 
    {
        "code": 4633,
        "reason": "No permission to operate this device" //没有权限操作该设备
    }
 
    {
        "code": 4407,
        "reason": "duplicate operation"//该用户已经和设备绑定过了
    }
 */
+ (NSURL*)share_device:(NSString*)deviceid name:(NSString*)name;


/**
    主用户取消分享
    user_id 子用户user_id
    device_id 设备ID
 */
+(NSURL *)cancel_share_device:(NSString*)device_id userid:(NSString*)user_id;


/**
    主用户获取当前设备接受分享的用户列表
    device_id 设备ID
 */
+(NSURL *)get_device_shared_user:(NSString*)device_id;


/**
    主用户设置子用户的昵称
    user_id 子用户user_id
    device_id 设备ID
    nickname 昵称
 */
+(NSURL *)save_share_user_nickName:(NSString*)nickname device_id:(NSString*)device_id user_id:(NSString*)user_id;

/*--------------------------  设备分享接口 结束 ----------------------- */


/*--------------------------  智能锁模块 安全密码相关接口 -------------------------- */

/// VL2/0手机端安全密码验证接口
/*
 post请求 设置开锁之前的认证密码
 
 发送数据
 {
    "deviceId": "", 设备bid
    "pwd": "" 安全密码 6位
 }
 响应
 {
    "code": 0,
    "reason": ""
 }
 0    成功
 200    OK    Response
 4407    安全密码已存在，请不要重复设置
 4634    没有绑定关系
 
 */
+ (NSURL*)eques_set_vl0_psd;

/*
 post请求 获取之前设置开锁的认证密码

 {
    "code": 0,
    "data": {
       "pwd": "",
       "state": 0 开启安全密码验证状态 0关 1开
    },
    "reason": ""
 }
 */
+ (NSURL*)eques_get_vl0_psd:(NSString*)deviceID;

/*
 post请求 编辑安全密码
 
 发送数据
 {
    "deviceId": "", 设备bid
    "oldPwd": "", 老的安全密码
    "pwd": "",    新的安全密码
    "state": 0    开启状态
 }
 
 响应
 {
    "code": 0,
    "reason": ""
 }
 
 0    成功
 200    OK
 4101    密码错误
 4321    缺少必填参数
 4634    没有绑定关系
 5404    没有设置过密码
 
 */
+ (NSURL*)eques_edit_vl0_psd;

/*
 post请求 验证安全密码
 
 发送数据
 {
    "deviceId": "",
    "pwd": ""
 }
 响应
 {
    "code": 0,
    "reason": ""
 }
 0    成功
 200    OK    Response
 4101    密码错误
 4137    安全密码没有启用
 4634    没有绑定关系
 5404    没有设置过密码
 */
+ (NSURL*)eques_check_vl0_psd;

/* -------------------------- 智能锁模块 安全密码相关接口结束 --------------------------*/


#pragma mark/* ------------------------------------------------------------  智能锁模块（VM/VL系列接口） 接口结束 ----------------------------------------------------------- */


#pragma mark 发送自定义websocket消息
+ (void)equesSendData:(NSString *)datdStr;

/*-------------------------- 智能锁模块 临时密码相关接口开始 需要设备版本支持 不是所有的锁模块都支持 --------------------------*/

//以下请求都是post 请求

/*创建临时密码
 post 请求发送数据
 
 {
    "deviceId": "", 设备bid
    "endDate": "", 结束时间 时间格式2021-10-28 09:26 结束时间大于开始时间
    "name": "", 密码昵称
    "password": "",密码内容 必须以1开头 七位密码
    "period": "", 周期 0 代表全周期 1,2代表周一周二，设置时以,分隔开发送字符串数据 例如只设置周一 1 不添加,
    "startDate": "",开始时间 时间格式2021-10-27 09:26
    "type": 1     1一次性密码 2周期性密码
 }
 
 返回值：
 {
     code = 4000; 成功
     reason = success;
    4430   星期参数重复
    4504   操作失败
    4634   没有绑定关系
    5433   无效参数
}
 
 */

+ (NSURL*)create_vl0_tem_psd;

/*
 获取临时密码列表
 通过post请求
 deviceId 设备bid
 {
     "deviceId": ""
 }
 返回结果：
 {
    code = 4000; //状态码
    4321   缺少必填参数
    4504   操作失败
    4634   没有绑定关系

     data =     (
                 {
             endDate = "2021-10-28 23:59"; 结束时间
             id = 1453555002065743872; 密码唯一ID
             name = "\U5468\U671f\U6027"; 临时密码昵称
             password = 1111112; 密码内容
             period = 0; 0代表全周期；1-7代表周一到周日
             startDate = "2021-10-28 00:00"; 开始时间
             type = 1; 1一次性 2周期性
         },
                 {
             endDate = "2021-10-28 23:59";
             id = 1453554658107650048;
             name = "1\U6b21\U6027";
             password = 1111111;
             period = 0;
             startDate = "2021-10-28 00:00";
             type = 1;
         }
     );
     reason = success;
 }
 
 */
+ (NSURL*)get_vl0_tem_psd_list;

/*
 通过post请求 获取过期密码
 deviceId 设备bid
 {
     "deviceId": ""
     "start" : 0 页码 分页
     "limit" : 10 每页个数
 }
 返回结果：
 {
     code = 4000;
     data =     {
         list =         (
                         {
                 endDate = "2021-10-28 14:33";
                 id = 1453603245956984832;
                 name = "\U5b89\U5353\U4e00\U6b21\U6027\U5bc6\U7801";
                 password = 1111113;
                 period = 0;
                 startDate = "2021-10-28 14:02";
                 type = 1;
             }
         );
         total = 1;  //总个数
     };
     reason = success;
 }
 
 4321   缺少必填参数
 4504   操作失败
 4634   没有绑定关系
 */
+ (NSURL*)get_vl0_tem_psd_list_invalid;


/*
 通过post请求 删除密码
 deviceId 设备bid
 {
     "deviceId": ""
     "ids" : [ssss,sssssshhh] 临时密码ID数组

 }
 返回结果：
 {
     code = 4000; 成功
     reason = success;

    4430   星期参数重复
    4504   操作失败
    4634   没有绑定关系
    5433   无效参数
}
 */
+ (NSURL*)delete_vl0_tem_psd;

/* --------------------------  智能锁模块 临时密码相关接口结束 -------------------------- */


/* ----------------------------------------------------宠物相关接口 开始 ----------------------------------------------------*/
/*获取喂食记录 get*/
+ (NSURL*)getCatFeedRecordWithBid:(NSString*)bid startTime:(long long)startTime end_time:(long long)end_time;
/*获取喂食告警 get*/
+ (NSURL*)getE1proLockAlarmdWithLockid:(NSString*)lockID startTime:(long long)startTime end_time:(long long)end_time offset:(int)offset limit:(int)limit;
/*获取上传的录音文件 get*/
+ (NSURL *)get_g711a:(NSString*)bid version:(int)version;
/*检查mcu是否有新的版本升级 get*/
+ (NSURL*)check_cat_mcu_version:(NSString*)version brand_id:(int)brand_id;
/*上传录音 g711a格式 get*/
+ (NSURL*)upload_g711a;
/* -----------------------------------------------------宠物相关接口 结束 ------------------------------------------------*/
















/* ------------------------------VL1H设备获取设备信息 ------------------------------*/
/**
 *  @param  lock_id 设备的唯一标识 VL1获取附属锁信息
 */
+ (NSURL*)get_lock_info:(NSString*)lock_id;


#pragma mark 猫眼锁联合体E6开锁 支持输入开锁密码的设备使用
/**
 *  @param   bid     设备的bid
 *  @param   password     开锁密码
 
 */
+ (void)open_smart_lockWithBid:(NSString*)bid password:(NSString*)password;


#pragma mark 猫眼联动锁和门生成临时密码 使用一次
/**
 *  返回锁消息
 *  @param   useruid 用户的uid
 *  @param   bid     设备的bid
 *  @param   password     开锁密码
 
 */
+(void)set_smart_lock_temp_passwdWithbid:(NSString*)bid password:(NSString*)password;



/* ------------------- H5可视门铃 录音回复开始   ------------------- */
/**
 *  @param
 * bid       设备的bid
 * value 【0-3】固定语音
 */
+ (void)play_answer_toneWithBid:(NSString *)bid value:(int)value;
/* ------------------- H5可视门铃 录音回复结束   ------------------- */






/* --------------------------  海思平台系列设备（T1 T21 CE200 JD1 CE100 A27 R27）操作接口 以下接口只对移康海思平台设备支持-------------- */
/**
 获取设备详情
*  @param   bid  设备bid
*/
+ (void)equesGetDeviceInfoWithBid:(NSString*)bid;

#pragma mark  设置人体侦测开关
/**
*  @param    bid  设备bid
*  @param    value   0 / 1
*/
+ (void)set_alarm_enable:(NSString*)bid value:(int)value;

#pragma mark  设置自动抓拍时间
/**
*  @param    bid        设备bid
*  @param    value     时间参数 （1 3 5 10 15）
*/
+ (void)set_automatic_alarm_timeWithbid:(NSString*)bid value:(int)value;

#pragma mark  设置侦测灵敏度
/**
*  @param    bid        设备bid
*  @param    value     0低 1高
*/
+ (void)set_alarm_sensitivityWithbid:(NSString*)bid value:(int)value;

#pragma mark  设置报警模式
/**
*  @param    bid  设备bid
*  @param    value     0 - 拍照1张   1 - 录像(默认10秒，保持不变)  2 - 拍照3张  3 - 拍照5张   设备支持才可以 4 - 录像5秒(R27) 5 - 录像15秒(R27)
*/
+ (void)set_alarm_modeWithbid:(NSString*)bid value:(int)value;

#pragma mark  设置逗留警示音
/**
*  @param    bid
*  @param    value    【0-7】 0 静音 1你是谁呀 2嘟嘟声 3警报声 4尖啸声 （ 5您好，请按门铃 6我想死你们了 7 新年快乐，恭喜发财 看设备端版本是否支持）
*/
+ (void)set_alarm_ringtoneWithbid:(NSString*)bid value:(int)value;


#pragma mark  设置逗留警示音音量
/**
*  @param    bid    设备bid
*  @param    value  音量等级    【0-6】
*/
+ (void)set_alarm_ringvolWithbid:(NSString*)bid value:(int)value;


#pragma mark  设置逗留报警时间
/**
*  @param    bid    设备bid
*  @param    value  时间秒【5 10 15 20】
*/
+ (void)set_linger_alm_timeWithbid:(NSString*)bid value:(int)value;

#pragma mark  设置门铃灯开关
/**
*  @param    bid    设备bid
*  @param    value  0关 1开
*/
+ (void)set_alarm_light_switchWithbid:(NSString*)bid value:(int)value;


#pragma mark 设置门铃音
/**
*  @param    bid    设备bid
*  @param    value【0-2】
*/
+ (void)set_ringtoneWithbid:(NSString*)bid value:(int)value;

#pragma mark 设置门铃音音量
/**
*  @param    bid    设备bid
*  @param    value【0-6】
*/
+ (void)set_ringvolWithbid:(NSString*)bid value:(int)value;


#pragma mark 设置图像分辨率
/**
 
*  @param    bid    设备bid
*  @param    value 0高清 1流畅
*/
+ (void)set_camera_resolutionWithbid:(NSString*)bid value:(int)value;


#pragma mark 设置屏幕超时时间
/**
*  @param    bid    设备bid
*  @param    value 参数 10 20 30
*/
+ (void)set_lcd_timeoutWithbid:(NSString*)bid value:(int)value;


#pragma mark 设置屏幕亮度
/**
*  @param    bid    设备bid
*  @param    value 参数 【0-14】
*/
+ (void)set_lcd_lumWithbid:(NSString*)bid value:(int)value;

#pragma mark  设置工作模式
/**
*  @param    bid    设备bid
*  @param    value 参数 0正常模式  1省电模式
*/
+ (void)set_save_powerWithbid:(NSString*)bid value:(int)value;


#pragma mark 格式化sd卡
/**
*  @param    bid    设备bid
*  @param    value 参数 0正常模式  1省电模式
*/
+ (void)set_sd_card_formatWithbid:(NSString*)bid;

#pragma mark 远程重启
/**
 *  @param   bid     设备的bid
 */
+ (void)remote_restart:(NSString*)bid;


#pragma mark  恢复出厂设置
/**
 *  @param   bid     设备的bid
 */
+ (void)restore_devices:(NSString*)bid;


#pragma mark  设备升级
/**
 *  @param   bid     设备的bid
 */
+ (void)update_confirm:(NSString*)bid;





#pragma mark 上传日志 无返回结果
/**
 *  @param   bid     设备的bid
 */
+ (void)upload_logWithBid:(NSString*)bid;

// --------------------------  海思平台系列设备（T1 T21 CE200 JD1 CE100 A27 R27）操作接口 结束--------------


/* --------------------------淇特门业接口开始 --------------------------*/
/*
 get 方式 淇特门业获取事件列表
 *  @param  bid 设备的唯一标识
 *  @param  startTime 开始时间
 *  @param  end_time 结束时间
 *  @param  offset 偏移量从某个位置获取
 *  @param  limit 限制个数
 */

+ (NSURL*)get_list_eventsWithDeviceBid:(NSString*)bid startTime:(long long)startTime endTime:(long long)endTime limit:(int)limit limit:(int)offset;

/*
淇特门业删除事件列表
post 发送数据格式
{
   "deviceId": "", bid 设备的唯一标识
   "ids": [] 消息的id
}
*/
+ (NSURL*)remove_list_events;

/* -------------------------- 淇特门业接口结束 --------------------------*/






/* -------------------------- 非第三方使用接口 --------------------------*/

#pragma mark iOS 获取分发地址 非第三方
/*
 通过域名获取分发地址 用户后期的登录注册和接口请求 必须做的 存到数据库 YKIPinfo 中（用的fmdb）
 
 url 获取分发地址的域名
 isSecond 字符串 是否有值决定是否获取分发地址后重新登录
 username 用户名 可不传 不传不会执行登录操作
 appid appid必须传
 appkey 必须传
 update_ip 有值代表只是更新IP后会发出一个通知 没有值不发出通知 通知名 @"changeArea"
 */
+ (void)equesInit:(NSString *)url withIsSecond:(NSString*)isSecond withUserName:(NSString*)username andAppid:(NSString*)appid andAppkey:(NSString*)appkey update_ip:(NSString*)update_ip;




#pragma mark 登录新接口，可支持QQ，微信登录 内部自己使用 第三方不能使用
/**
 *  登录账号
 *
 *  @param url 服务器地址url
 *  @param nameStype  用于表明name的含义
 //  uname : name为用户注册的用户名
 //  email : name为用户注册的email
 //  phone: name为用户注册的手机号
 //  bid: name为用户或设备的32字符的bid
 //  tinyid: name为用户的短号
 //  qq: name为QQ的openid
 //  weixin: name为weixin的openid
 //  weibo: name为新浪微博的uid
 *  @param name  根据nameStype来传入对应的值
 *  @param tokenType  用于表明token的具体含义，没有可不穿
 // access_token : token为QQ/微信/微博的token
 // passwd_md5: token为用户密码的md5值, 用于移康账号登录
 *  @param token 根据tokenType来传入对应的值
 *  @param appkey  使用QQ登录时，需要传入appkey，其它登录类型可不传
 *  @param role 代表客户端类型
 *  @param distributeName 代表获取分发地址的用户名
 */
+ (void)equesSdkLoginNewWithUrl:(NSString *)url nameStype:(NSString *)nameType name:(NSString *)username tokenType:(NSString *)tokenType token:(NSString *)token appKey:(NSString *)AppKey role:(NSString *)role iphoneId:(NSString *)iphoneId uid:(NSString *)uid bid:(NSString *)bid applicationKey:(NSString*)applicationKey;


#pragma marl 检查是否APP是否有版本更新
+ (NSURL *)equesVersionCheckUpdate:(int)clientRole version:(long long)version;

#pragma marl 上传用户头像
+ (NSURL *)equesUploadUserIcon:(NSString *)avatar;

#pragma marl 获取请求绑定m1
+(void)equesScanCodeWith:(NSString*)sn withUserName:(NSString*)userName;

#pragma marl 上传分享视频
+ (NSURL *)equesUploadSharingVideo:(NSString *)bid aid:(NSString *)aid userIdea:(NSString *)userIdea coordinateds:(NSString *)coordinates;
#pragma marl 获取分享视频列表
+ (NSURL *)equesGetSharingVideoList:(int)distance owner:(NSString *)owner start:(int)start limit:(int)limit coordinateds:(NSString *)coordinates;
#pragma marl 下载分享视频
+ (NSURL *)equesDownloadSharingVideo:(NSString *)fid;
#pragma marl 删除分享视频
+ (NSURL *)equesDeleteSharingVideo;
#pragma marl 获取分享视频页面的主题
+ (NSURL *)equesGetSharingBanner;
#pragma marl 获取方圆五百里中用户相关的最新动态
+ (NSURL *)equesGetSharingMessageCount;
#pragma marl 获取方圆五百里用户相关的点赞评论列表
+ (NSURL *)equesGetSharingMessageDetail;

+(NSString*)equesSearchM1sn;

#pragma mark 下载切片/m3u8文件
+ (NSURL *)equesGetAlarmfileUrl:(NSString *)bid fid:(NSString *)fid category:(int)category;

/* ----------------------------------------------------非第三方使用接口结束 ----------------------------------------------------*/


#pragma mark 老的第三方SDK登录使用
/**
 *  登录账号
 *
 *  @param url 服务器地址url
 *  @param username  用户名
 *  @param AppKey 分配appkey
 */
+ (void)equesSdkLoginWithUrl:(NSString *)url username:(NSString *)username appKey:(NSString *)AppKey;


#pragma mark 添加整机猫眼生成二维码
/**
 *  生成二维码
 *
 *  @param WifiSsid 设备要连接的wifi名称
 *  @param wifiPw  wifi密码
 *  @param username 用户名
 *  @param role 设备类型 区分C01和其它类产品
 *  @param width 生成正方形二维码的长度。
 */
+ (UIImage *)equesCreateQRCodeWithWifiSsid:(NSString *)wifiSsid wifiPw:(NSString *)wifiPw username:(NSString *)username role:(DeviceType)role imageSize:(CGFloat)width;

#pragma mark 添加整机猫眼生成二维码
/**
 *  生成二维码(增加key_id参数)
 *
 *  @param WifiSsid 设备要连接的wifi名称
 *  @param wifiPw  wifi密码
 *  @param username 用户名
 *  @param role 设备类型 区分C01和其它类产品
 *  @param width 生成正方形二维码的长度。
 *  @param keyId 第三方厂商键值
 */
+ (UIImage *)equesCreateQRCodeNewWithWifiSsid:(NSString *)wifiSsid wifiPw:(NSString *)wifiPw username:(NSString *)username keyId:(NSString *)keyId role:(DeviceType)role imageSize:(CGFloat)width;


#pragma mark 添加整机猫眼确认添加该设备
/**
 *  添加整机猫眼 确认添加该设备
 *
 *  @param requestId 会话请求的id  填入收到method值为on_addbdy_req的数据包中的reqid值
 *  @param allow allow为1时允许添加，allow为0时拒绝添加。
 */
+ (void)equesAckAddResponse:(NSString *)requestId allow:(AllowResponce)allow;


#pragma mark 整机猫眼获取设备详情 非智能锁
/**
 *  获取设备信息
 *
 *  @param uid 设备端的通信id
 */
+ (void)equesGetDeviceInfoWithUid:(NSString *)uid;


#pragma mark 整机猫眼获取设备 人体侦测功能
/**
 *  整机猫眼获取设备 人体侦测功能
 *
 *  @param uid 设备端的通信id
 *  @param value 打开或者关闭pir
 */
+ (void)equesSetPirEnableWithUid:(NSString *)uid status:(BOOL)value;

#pragma mark  整机猫眼门铃灯开关
/**
 *  整机猫眼门铃灯开关
 *
 *  @param uid 设备端的通信id
 *  @param value 打开或者关闭门铃灯
 */
+ (void)equesSetDoorbellLightWtihUid:(NSString *)uid status:(BOOL)value;

#pragma mark  整机猫眼门铃铃声
/**
 *  整机猫眼门铃铃声
 *
 *  @param uid 设备端的通信id
 *  @param ring 铃声编号
 */
+ (void)equesSelectDoorbellRingtoneWithUid:(NSString *)uid ring:(int)value;

#pragma mark 获取整机猫眼PIR设置详情
/**
 *  整机猫眼人体侦测的设置信息
 *
 *  @param uid 设备端的通信id
 */
+ (void)equesGetDevicePirInfoWithUid:(NSString *)uid;

#pragma mark 整机猫眼设置PIR参数

/**
 *  设置PIR参数
 *
 *  @param uid/bid 设备端的id
 *  @param senseTime 侦测到人体多少秒后才开始抓拍
 *  @param senseSensitivity 人体侦测灵敏度
 *  @param ringtone PIR报警铃声
 *  @param volume 设备报警铃音音量
 *  @param captureNum 单次报警抓拍图片的张数
 *  @param format 报警格式--拍照或者录像
 */
+ (void)equesSetDevicePirInfoWithUid:(NSString *)uid senseTime:(int)senseTime senseSensitivity:(int)senseSensitivity ringtone:(int)ringtone volume:(int)volume captureNum:(int)captureNum format:(int)format;

#pragma mark 设置PIR参数支持长录像整机猫眼
/**
 *  设置PIR参数
 *
 *  @param uid 设备端的通信id
 *  @param senseTime 侦测到人体多少秒后才开始抓拍
 *  @param senseSensitivity 人体侦测灵敏度
 *  @param ringtone PIR报警铃声
 *  @param volume 设备报警铃音音量
 *  @param captureNum 单次报警抓拍图片的张数
 *  @param format 报警格式--拍照或者录像
 *  @param long_record 长录像 部分设备支持
 *  @param stay_time  逗留报警 部分设备支持
 *  @param video_time 视频录像是讲 部分设备支持
 */
+ (void)equesSetDevicePirInfoWithUid:(NSString *)uid senseTime:(int)senseTime senseSensitivity:(int)senseSensitivity ringtone:(int)ringtone volume:(int)volume captureNum:(int)captureNum format:(int)format long_record:(int)long_record  stay_time:(int)stay_time  video_time:(int)video_time;


#pragma mark 整机猫眼远程重启
/**
 *  远程重启
 *
 *  @param uid 设备端的通信id
 */
+ (void)equesRestartDeviceWithUid:(NSString *)uid;


#pragma mark 整机猫眼设备日志上传
/**
 *  上传设备日志
 *
 *  @param uid 设备端的通信id
 */
+ (void)equesDeviceLogUploadWithUid:(NSString *)uid;


#pragma mark 猫眼整机 模块 视频拨打 不是智能锁模块
/**
 *  主动拨打，门铃视频查看
 *
 *  @param bid 呼叫设备的唯一标识
 *  @param bVideo  YES 视频呼叫
 *  @param video 视频显示视图
 *  @param devtype 设备类型 必须传
 *  @param devices_class  设备分类 bdylist 设备信息中没有字段时 传 设备类型 此值传 0 有就传
 *  @param cameraType 视频拨打类型 视频1
 *  @param videoType 1 h265 0 H264
 *  @param framerate 固定15
 */
+ (NSString*)equesOpenCall:(NSString *)bid showView:(UIView *)video enableVideo:(bool)bVideo devType:(int)type  devices_class:(int)devices_class cameraType:(int)cameraType framerate:(int)framerate videoType:(int)videoType;


#pragma mark 整机猫眼视频挂断
/**
 *  视频挂断
 *  @param sid 当前会话的sid
 *  @param 默认传 0
 */
+ (void)equesCloseCall:(NSString*)sid isSD68:(BOOL)isSD68;

#pragma mark 整机猫眼录音控制
/**
 *  语音对讲时录音开关
 *  @param enable ：true为打开；false为关闭
 */
+ (void)equesAudioRecordEnable:(bool)enable;

#pragma mark 整机猫眼audio播放控制
/**
 *  声音播放开关
 *  @param enable ：true为打开；false为关闭
 */
+ (void)equesAudioPlayEnable:(bool)enable;


#pragma mark 整机猫眼audio播放效果控制
/**
 *  声音播放开关
 *  @param  type  0: original;   1: man;
 */
+ (void)equesAudioPlaySoundChange:(bool)type;


#pragma mark 整机猫眼通知设备app端打开手机摄像头了
/**
 *  打开手机摄像头开关
 *  @param  bid  发送设备的设备ID
 *  @param  OpenCamera  1开 2关
 */
+ (void)openiPhoneCameraWithBid:(NSString*)bid  OpenCamera:(int)OpenCamera;


#pragma mark 整机猫眼切换设备摄像头
/**
 *  打开手机摄像头开关
 *  @param  bid  发送设备的设备ID
 */
+ (void)changeDeviceCameraWithBid:(NSString*)bid;


#pragma mark 猫眼整机 抓拍控制 可以直接通过截取视频播放控件方式保存
/**
 *
 *  @param type:设备类型
 *  @param path:文件保存路径
 */
+ (int)equesSnapCapture:(int)type fileurl:(NSString*)path;


#pragma mark 猫眼整机 抓拍控制
/**
 *  语音对讲时录音开关
 *  @param type:设备类型
 *  @param path:文件保存路径
 *  @param  withR700Resol 分辨率
 *  @param  angel  角度
 */
+(int)equesSnapCapture:(int)type fileurl:(NSString*)path withR700Resol:(int)resol withAngel:(int)angel andcamera_width:(int)camerawidth andcamera_height:(int)cameraheight;



#pragma mark 获取整机猫眼的PIR报警天数信息
/**
*  获取设备存在的PIR报警消息天数信息
*  @param bid 设备的唯一标识
*/
+ (NSURL *)equesGetAlarmCountUrl:(NSString *)bid;


/**
*  获取设备存在的PIR报警消息 通过https请求返回
 *  @param bid 设备的唯一标识
 *  @param startTime 开始时间 秒
 *  @param endTime    结束时间 秒
 *  @param offset      偏移量
 *  @param limitCount 每次返回的个数限制
*/
+ (NSURL *)equesGetDeviceAlarmList:(NSString *)bid startTime:(long long)startTime endTime:(long long)endTime offset:(long long)offset limitCount:(long long)limit;

#pragma mark 获取整机猫眼某个时段PIR报警消息列表
/**
 *  获取设备的未读报警消息列表 通过websoct返回
 *
 *  @param bid 设备的唯一标识
 *  @param startTime  要获取报警消息的起始时间
 *  @param endTime    要获取报警消息的截止时间
 *  @param limit 一次最多获取的消息条数(最大支持100条)
 */
+ (void)equesGetAlarmMessageList:(NSString *)bid startTime:(long long)startTime endTime:(long long)endTime limitCount:(long long)limit;

#pragma mark 获取报警消息缩略图url
/**
 *  获取报警消息缩略图url
 *
 *  @param bid 设备的唯一标识
 *  @param pvid 报警消息缩略图的唯一id
 */
+ (NSURL *)equesGetThumbUrl:(NSString *)bid pvid:(NSString *)pvid;

#pragma mark 获取报警源消息文件url
/**
 *  获取报警消息文件url
 *
 *  @param bid 设备的唯一标识
 *  @param fid 报警消息文件的唯一id
 */
+ (NSURL *)equesGetAlarmfileUrl:(NSString *)bid fid:(NSString *)fid;

#pragma mark 删除PIR报警消息接口
/**
 *  删除报警消息接口
 *
 *  @param bid 设备的唯一标识
 *  @param aid 报警消息的唯一id
 *  @param delAll 删除方式
 */
+ (void)equesDelAlarmMessageWithBid:(NSString *)bid aid:(NSArray *)aid delAll:(deleteOption)delAll;

#pragma mark 删除PIR报警消息接口
/**
 *  新接口 删除报警消息接口
 *
 *  @param bid 设备的唯一标识
 *  @param aid 报警消息的唯一id
 *  @param delAll 删除方式
 */
+ (NSURL *)equesDeletePirAlarm;

/* ---------------------------------获取猫眼绑定 锁列表 以下开锁消息 开锁告警 都是非智能锁模块获取的接口 （是整机猫眼关联的智能锁 非VL系列 VM系列的锁接口） --------------------------------------------*/

#pragma mark 获取猫眼绑定 锁列表
/**
 *  获取猫眼绑定的锁列表
 *
 *  @param bid 猫眼设备的唯一标识
 */
+ (void)equesGetLockListWithBid:(NSString *)bid;

#pragma mark 猫眼设备关联的智能锁开锁 zigbee 锁 不是模块
/**
 *  发送开锁指令
 *
 *  @param uid 设备端的通信id
 *  @param lid 锁的唯一标识，可通过获取锁列表得到
 *  @param password 开锁密码
 */
+ (void)equesOpenLockWithUid:(NSString *)uid lid:(NSString *)lid password:(NSString *)password;

#pragma mark 获取锁的开锁消息 通过websocket 方式
/**
 *  获取设备的未读开锁消息列表
 *
 *  @param bid 设备的唯一标识
 *  @param lid 锁的唯一标识，可通过获取锁列表得到
 *  @param startTime  要获取报警消息的起始时间
 *  @param endTime    要获取报警消息的截止时间
 *  @param limit 一次最多获取的消息条数(最大支持100条)
 */
+ (void)equesGetLockMessage:(NSString *)bid lid:(NSString *)lid startTime:(long long)startTime endTime:(long long)endTime limitCount:(long long)limit;

#pragma mark 删除锁的开锁消息 通过websocket 方式
/**
 *  删除开锁消息接口
 *
 *  @param bid 设备的唯一标识
 *  @param lid 锁的唯一标识，可通过获取锁列表得到
 *  @param aid 开锁消息的唯一id
 *  @param delAll 删除方式
 */
+ (void)equesDeleteLockMessageWithBid:(NSString *)bid lid:(NSString *)lid oid:(NSArray *)oid delAll:(deleteLockOption)delAll;

//-----------新的锁消息获取接口URL----------
#pragma mark 获取锁消息天数 bid猫眼设备bid lid 锁的ID
+ (NSURL *)equesGetLockMessageUrlWithBid:(NSString *)bid lid:(NSString *)lid;

#pragma mark 获取锁消息天数 bid猫眼设备bid lid 锁的ID startTime：开始时间  endTime：结束时间 offset：偏移量 limit返回个数
+ (NSURL *)eqeusGetLockMessageListUrlWithBid:(NSString *)bid lid:(NSString *)lid startTime:(long long)startTime endTime:(long long)endTime offset:(long long)offset limit:(long long)limit;
#pragma mark 删除锁消息
+ (NSURL *)equesDeleteLockMessage;
// -----------新的锁消息获取接口URL----------

#pragma mark 获取锁的告警消息 通过websocket 方式
/**
 *  获取设备的未读锁告警消息列表
 *
 *  @param bid 设备的唯一标识
 *  @param lid 锁的唯一标识，可通过获取锁列表得到
 *  @param startTime  要获取报警消息的起始时间
 *  @param endTime    要获取报警消息的截止时间
 *  @param limit 一次最多获取的消息条数(最大支持100条)
 */
+ (void)equesGetLockAlarm:(NSString *)bid lid:(NSString *)lid startTime:(long long)startTime endTime:(long long)endTime limitCount:(long long)limit;

#pragma mark 删除锁的告警消息 通过websocket 方式
/**
 *  删除锁告警消息接口
 *
 *  @param bid 设备的唯一标识
 *  @param lid 锁的唯一标识，可通过获取锁列表得到
 *  @param aid 告警消息的唯一id
 *  @param delAll 删除方式
 */
+ (void)equesDeleteLockAlarmWithBid:(NSString *)bid lid:(NSString *)lid aid:(NSArray *)aid delAll:(deleteLockOption)delAll;

//------------- 新的锁警告消息接口 通过https 方式-----------

#pragma mark 获取锁告警天数 bid猫眼设备bid lid 锁的ID
+ (NSURL *)equesGetLockAlarmUrlWithBid:(NSString *)bid lid:(NSString *)lid;
#pragma mark 获取某个时间段锁告警消息 bid猫眼设备bid lid 锁的ID
+ (NSURL *)eqeusGetLockAlarmListUrlWithBid:(NSString *)bid lid:(NSString *)lid startTime:(long long)startTime endTime:(long long)endTime offset:(long long)offset limit:(long long)limit;
#pragma mark 删除锁告警消息
+ (NSURL *)equesDeleteLockAlarm;
//------------- 新的锁警告消息接口 ---------
/* ---------------------------------获取猫眼绑定 锁列表 开锁消息 开锁告警 都是非智能锁模块获取的接口 （是整机猫眼关联的智能锁 非VL系列 VM系列的锁接口） 结束--------------------------------------------*/




/* ------------------------------------------------------------  相关绑定智能门和操作接口 --------------------------------------------------------------- */
/**
 *  绑定智能门
 *
 *  @param qrcode 二维码扫描获得的信息
 */
+(NSURL *)bind_device_qrcode:(NSString*)qrcode;

#pragma mark 设置门 门铃音量等级
/**
 *  门铃音量等级
 *  @param bid 设备的唯一标识
 *  @param ringtone_vol 音量等级 取值范围数值越大等级越高【1,7】
 */
+(NSString *)set_doorbell_ring_vol:(int)ringtone_vol bid:(NSString*)bid;

#pragma mark 设置睡眠模式开关
/**
 *  @param bid 设备的唯一标识
 *  @param state 睡眠模式开关 0关 1开
 */
+(NSString *)set_device_sleep:(int)state bid:(NSString*)bid;

#pragma mark 智能门开锁
/**
 *  @param   bid     设备的bid
 */
+ (void)open_d1_smart_lock:(NSString*)bid password:(NSString*)password;


#pragma mark 智能门设置未关门提醒
/**
 *  @param   bid     设备的bid
 
 */
+ (NSURL*)set_lock_off_remind:(NSString*)bid lock_off_remind:(int)lock_off_remind;

/* ------------------------------------------------------------  相关绑定智能门和操作接口结束 --------------------------------------------------------------- */



@end
